package model

import "encoding/json"

type FeePlanPaymentOrderCreateRequest struct {
	Id             int64  `json:"id"`
	TradeNo        string `json:"trade_no"`
	PrepayId       string `json:"prepay_id"`
	UserId         int64  `json:"user_id"`
	UserName       string `json:"user_name"`
	UserPhone      string `json:"user_phone"`
	EbikeId        int64  `json:"ebike_id"`
	EbikeName      string `json:"ebike_name"`
	EbikeSnCode    string `json:"ebike_sn_code"`
	EbikeTypeId    int64  `json:"ebike_type_id"`
	EbikeTypeName  string `json:"ebike_type_name"`
	Status         int    `json:"status"`
	Description    string `json:"description"`
	FeePlanId      int64  `json:"fee_plan_id"`
	FeePlanGroupId int64  `json:"fee_plan_group_id"`
	FeePlanPackNo  int    `json:"fee_plan_pack_no"`
	Money          int    `json:"money"`
	CallBackCnt    int    `json:"call_back_cnt"`
	Channel        string `json:"channel"`
	CallBackData   string `json:"call_back_data"`
	TransactionId  string `json:"transaction_id"`
	ExpiredAt      int64  `json:"expired_at"`
	PayAt          int64  `json:"pay_at"`
	CreatedAt      int64  `json:"created_at"`
	UpdatedAt      int64  `json:"updated_at"`
}

type FeePlanPaymentOrderUpdateRequest struct {
	Id             *int64          `json:"id"`
	TradeNo        *string         `json:"trade_no"`
	PrepayId       *string         `json:"prepay_id"`
	UserId         *int64          `json:"user_id"`
	UserName       *string         `json:"user_name"`
	UserPhone      *string         `json:"user_phone"`
	EbikeId        *int64          `json:"ebike_id"`
	EbikeName      *string         `json:"ebike_name"`
	EbikeSnCode    *string         `json:"ebike_sn_code"`
	EbikeTypeId    *int64          `json:"ebike_type_id"`
	EbikeTypeName  *string         `json:"ebike_type_name"`
	Status         *int            `json:"status"`
	StatusDetail   json.RawMessage `json:"status_detail"`
	Description    *string         `json:"description"`
	FeePlanId      *int64          `json:"fee_plan_id"`
	FeePlanGroupId *int64          `json:"fee_plan_group_id"`
	FeePlanPackNo  *int            `json:"fee_plan_pack_no"`
	Money          *int            `json:"money"`
	CallBackCnt    *int            `json:"call_back_cnt"`
	Channel        *string         `json:"channel"`
	CallBackData   *string         `json:"call_back_data"`
	TransactionId  *string         `json:"transaction_id"`
	ExpiredAt      *int64          `json:"expired_at"`
	PayAt          *int64          `json:"pay_at"`
	CreatedAt      *int64          `json:"created_at"`
	UpdatedAt      *int64          `json:"updated_at"`
}
type FeePlanPaymentOrderListRequest struct {
	Id             *int64  `json:"id"`
	TradeNo        *string `json:"trade_no"`
	UserId         *int64  `json:"user_id"`
	UserName       *string `json:"user_name"`
	UserPhone      *string `json:"user_phone"`
	EbikeId        *int64  `json:"ebike_id"`
	EbikeName      *int64  `json:"ebike_name"`
	EbikeSnCode    *string `json:"ebike_sn_code"`
	EbikeTypeId    *int64  `json:"ebike_type_id"`
	EbikeTypeName  *string `json:"ebike_type_name"`
	Status         *int    `json:"status"`
	Description    *string `json:"description"`
	FeePlanId      *int64  `json:"fee_plan_id"`
	FeePlanGroupId *int64  `json:"fee_plan_group_id"`
	FeePlanPackNo  *int    `json:"fee_plan_pack_no"`
	Money          *int    `json:"money"`
	CallBackCnt    *int    `json:"call_back_cnt"`
	Channel        *string `json:"channel"`
	CallBackData   *string `json:"call_back_data"`
	TransactionId  *string `json:"transaction_id"`
	CreatedAt      *int64  `json:"created_at"`
	UpdatedAt      *int64  `json:"updated_at"`
	Index          int     `json:"index"`
	Size           int     `json:"size"`
}
type FeePlanPaymentOrderListResponse struct {
	Total int                        `json:"total"`
	List  []*FeePlanPaymentOrderInfo `json:"list"`
}
type FeePlanPaymentOrderInfoRequest struct {
	Id int64 `json:"id"`
}
type FeePlanPaymentOrderInfo struct {
	Id             int64           `json:"id"`
	TradeNo        string          `json:"trade_no"`
	UserId         int64           `json:"user_id"`
	UserName       string          `json:"user_name"`
	UserPhone      string          `json:"user_phone"`
	EbikeId        int64           `json:"ebike_id"`
	EbikeName      string          `json:"ebike_name"`
	EbikeSnCode    string          `json:"ebike_sn_code"`
	EbikeTypeId    int64           `json:"ebike_type_id"`
	EbikeTypeName  string          `json:"ebike_type_name"`
	Status         int             `json:"status"`
	StatusDetail   json.RawMessage `json:"status_detail"`
	Description    string          `json:"description"`
	FeePlanId      int64           `json:"fee_plan_id"`
	FeePlanGroupId int64           `json:"fee_plan_group_id"`
	FeePlanPackNo  int             `json:"fee_plan_pack_no"`
	Money          int             `json:"money"`
	CallBackCnt    int             `json:"call_back_cnt"`
	Channel        string          `json:"channel"`
	Content        string          `json:"content"`
	CallBackData   string          `json:"call_back_data"`
	TransactionId  string          `json:"transaction_id"`
	PayAt          int64           `json:"pay_at"`
	ExpiredAt      int64           `json:"expired_at"`
	CreatedAt      int64           `json:"created_at"`
	UpdatedAt      int64           `json:"updated_at"`
}
type FeePlanPaymentOrderDeleteRequest struct {
	Id int64 `json:"id"`
}
